MySQL server has gone away

工作中经常需要导入或者导出较大的sql文件。导出时一般没问题,但在导入到其它Mysql库中,可能会出现

Packet for query is too large (1706 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.

或者程序(如python里面executemany)在插入大量数据时出现

MySQL server has gone away

这些错误都可能是Mysql的mysql max_allowed_packet默认值太小。修改该值一般游两种方式。

方式一:sql语句修改

1、首先登陆mysql查看当前该值的大小。

show variables like ‘%max_allowed_packet%’

2、修改其大小为1G

set global max_allowed_packet = 102410241024

注意: 这种修改方式修改后,需要重新登陆Mysql查看,才能看到修改后的值,并且,这种方式修改的mysql max_allowed_packet,在Mysql重启后,可能失效。

方式二:my.ini修改

1、在my.ini 或 my.cnf 文件中添加如下语句。比如:改为1G。 如下图所示。修改完成后,需要重启mysql。

my.ini

注意:这种方式 max_allowed_packet 一定是添加在【mysqld】才能生效。

关注作者公众号,获取更多资源!
赏作者一杯咖啡~